#import "AddressBook.h"
#import "Foo.h"

int main (int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    Foo               *myFoo1 = [[Foo alloc] init];
    NSMutableData     *dataArea;
    NSKeyedArchiver   *archiver;
    AddressBook       *myBook;

    // Tu powinien znajdowa si kod z listingu 19.7 tworzcy ksik adresow
    // myBook zawierajc cztery kartoniki adresowe

    [myFoo1 setStrVal: @"To jest acuch znakw "];
    [myFoo1 setIntVal: 12345];
    [myFoo1 setFloatVal: 98.6];

    // Utworzenie obszaru na dane i poczenie go z obiektem klasy NSKeyedArchiver
    dataArea = [NSMutableData data];

    archiver   = [[NSKeyedArchiver alloc]
             initForWritingWithMutableData: dataArea];
    // Teraz mona rozpocz archiwizacj obiektw
    [archiver encodeObject: myBook forKey: @"myaddrbook"];
    [archiver encodeObject: myFoo1 forKey: @"myfoo1"];
    [archiver finishEncoding];

    // Zapisanie zarchiwizowanego obszaru danych w pliku
    if ([dataArea writeToFile: @"myArchive" atomically: YES] == NO)
        NSLog (@"Archiwizacja nie powioda si!");

    [archiver release];

    [myFoo1 release];
    [pool drain];
    return 0;
}